Dynomotion

Group: DynoMotion Message: 1799 From: b.parcels Date: 9/13/2011
Subject: Access to I accumulator
Hi Tom,
Have to say - the deeper I get into this work of yours, the more impressed I am!

This may be a stupid question (I'm just trying to re-learn my control theory) - but what would happen if one were to zero out the integration accumulator as soon as the setpoint was reached (as soon as error = 0)? Wouldn't that prevent some of the overshoot, while still allowing the system to reach zero steady-state error? I realize that much of the classical analysis would be out the window...

In any case, would there be any way of experimenting with this type of idea from a user thread, or is that variable restricted to the system thread? While we are at it, is there any access to the acceleration or velocity values from the feed-forward system?

Cheers,
Brad Parcels
Group: DynoMotion Message: 1800 From: Tom Kerekes Date: 9/13/2011
Subject: Re: Access to I accumulator
Hi Brad,
 
Thanks for the remarks. 
 
I suspect that there are some downsides to clearing the integrator, but depending on your system and application it may make sense.  The variable is part of the axis CHAN structure as defined in KMotionDef.h so you would execute:
 
chan0->integrator = 0;
 
The last_vel and last_dest variables are used to compute the acceleration and velocity feed forwards.
 
There is an OutputOffset variable that could probably be used if you wanted to do some specialized feed forward technique.
 
Regards
TK


--- On Tue, 9/13/11, b.parcels <bparcels@...> wrote:

From: b.parcels <bparcels@...>
Subject: [DynoMotion] Access to I accumulator
To: DynoMotion@yahoogroups.com
Date: Tuesday, September 13, 2011, 11:06 AM

 
Hi Tom,
Have to say - the deeper I get into this work of yours, the more impressed I am!

This may be a stupid question (I'm just trying to re-learn my control theory) - but what would happen if one were to zero out the integration accumulator as soon as the setpoint was reached (as soon as error = 0)? Wouldn't that prevent some of the overshoot, while still allowing the system to reach zero steady-state error? I realize that much of the classical analysis would be out the window...

In any case, would there be any way of experimenting with this type of idea from a user thread, or is that variable restricted to the system thread? While we are at it, is there any access to the acceleration or velocity values from the feed-forward system?

Cheers,
Brad Parcels